'''
Python运算符包括赋值运算符、算术运算符、关系运算符、逻辑运算符、
位运算符、成员运算符和身份运算符。 
表达式是将不同类型的数据(常量、变量、函数)用运算符按照一定得规则
连接起来的式子。'''
a = 3
b = 7
print("a + b :", a + b)
print("a - b :", a - b)
print("a * b :", a * b)
print("a / b :", a / b)#真除
print("a // b :", a // b)#整除
print(r"a % b:", a % b)
print("a ** b :", a ** b)#求幂
print(9 * 6.5 / 0.5)
print(9 / 3.0)
#在交互模式中，最后被输出的表达式结果被赋值给变量 _
print(round(3.234, 2))
a = 10
b = 5
print('a == b:', a == b)
print('a != b:', a != b)
print('a > b:', a > b)
print('a < b:', a < b)
#位运算
a = 60   
b = 13   
c = 0   
   
c = a & b;   
print ("c = a & b ,c=:", c)   
   
c = a | b;   
print ("c = a | b ,c=:", c)   
   
c = a ^ b;   
print ("c = a ^ b ,c=:", c)   
   
c = ~a;   
print ("c = ~a ,c=:", c)   
   
c = a << 2;   
print ("c = a << 2 ,c=:", c)   
   
c = a >> 2;   
print ("c = a >> 2 ,c=:", c)

#逻辑运算: and, or, not
a = 10   
b = 20   
   
if ( a and b ):   
    print ("1 - 变量 a 和 b 都为 true")   
else:   
   print ("1 - 变量 a 和 b 有一个不为 true")   
if ( a or b ):   
   print ("2 - 变量 a 和 b 都为 true，或其中一个变量为 true")   
else:   
   print ("2 - 变量 a 和 b 都不为 true")   
  
# 修改变量 a 的值   
a = 0   
if ( a and b ):   
   print ("3 - 变量 a 和 b 都为 true")   
else:   
   print ("3 - 变量 a 和 b 有一个不为 true")   
   
if ( a or b ):   
   print ("4 - 变量 a 和 b 都为 true，或其中一个变量为 true")   
else:   
   print ("4 - 变量 a 和 b 都不为 true")   
   
if not( a and b ):   
   print ("5 - 变量 a 和 b 都为 false，或其中一个变量为 false")   
else:   
   print ("5 - 变量 a 和 b 都为 true")

#成员运算符：in, not in
a = 7   
b = 2   
alist = [1, 2, 3, 4, 5 ]   
   
if ( a in alist ):   
   print ("变量 a 在给定的列表中 list 中")   
else:   
    print ("变量 a 不在给定的列表中 list 中")   
   
if ( b not in alist ):   
   print ("变量 b 不在给定的列表中 list 中")   
else:   
   print ("变量 b 在给定的列表中 list 中")

a = 25   
b = 25   
if ( a is b ):   
   print ("a 和 b 有相同的标识")   
else:   
   print ("a 和 b 没有相同的标识")   
  
if ( id(a) == id(b) ):   
   print ("a 和 b 有相同的标识")   
else:   
   print ("a 和 b 没有相同的标识")

#身份运算符：is, is not
#is与==的区别：
#is用于判断两个变量的引用对象是否为同一个，==用于判断引用变量的值是否相等。
#id()函数用于获取对象内存的地址
a = 25   
b = 25   
# 修改变量 b 的值   
b=20   
   
if ( a is b ):   
   print ("a 和 b 有相同的标识")   
else:   
   print ("a 和 b 没有相同的标识")   
   
if ( id(a) == id(b) ):   
   print ("a 和 b 有相同的标识")   
else:   
   print ("a 和 b 没有相同的标识")
'''
Output:
a + b : 10
a - b : -4
a * b : 21
a / b : 0.42857142857142855
a // b : 0
a % b: 3
a ** b : 2187
117.0
3.0
3.23
a == b: False
a != b: True
a > b: True
a < b: False
c = a & b ,c=: 12
c = a | b ,c=: 61
c = a ^ b ,c=: 49
c = ~a ,c=: -61
c = a << 2 ,c=: 240
c = a >> 2 ,c=: 15
1 - 变量 a 和 b 都为 true
2 - 变量 a 和 b 都为 true，或其中一个变量为 true
3 - 变量 a 和 b 有一个不为 true
4 - 变量 a 和 b 都为 true，或其中一个变量为 true
5 - 变量 a 和 b 都为 false，或其中一个变量为 false
变量 a 不在给定的列表中 list 中
变量 b 在给定的列表中 list 中
a 和 b 有相同的标识
a 和 b 有相同的标识
a 和 b 没有相同的标识
a 和 b 没有相同的标识'''